package com.sqm.sync_tool.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * <p>
 * 员工表
 * </p>
 *
 * @author sxubo
 * @since 2020-10-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("hr_staff")
public class HrStaff extends Model<HrStaff> {

    private static final long serialVersionUID = 1L;

    /**
     * 员工主键id
     */
    @TableId(value = "staff_id", type = IdType.AUTO)
    private Integer staffId;

    /**
     * 总后用户主键
     */
    @TableField("user_id")
    private String userId;

    /**
     * 员工编号
     */
    @TableField("staff_number")
    private String staffNumber;

    /**
     * 员工姓名
     */
    @TableField("staff_name")
    private String staffName;

    /**
     * 姓名拼音缩写
     */
    @TableField("name_pinyin")
    private String namePinyin;

    /**
     * 外键关联部门id
     */
    @TableField("organization_id")
    private String organizationId;

    /**
     * 外键关联职位id
     */
    @TableField("position_id")
    private Integer positionId;

    /**
     * 外键关联职级id
     */
    @TableField("rank_id")
    private Integer rankId;

    /**
     * 外键关联所属公司id
     */
    @TableField("company_id")
    private Integer companyId;

    /**
     * 员工状态0:待入职 1：延期入职 2：未到岗 3：已到岗，待考核 4 已解聘  5 实习期 6试用期（未提交转正申请） 7正式 8休假中 9待离职 10 已离职11试用期（已经提交转正申请）12辞退
     */
    @TableField("staff_status")
    private Integer staffStatus;

    /**
     * 员工类型 0：全职 1：实习
     */
    @TableField("staff_type")
    private Integer staffType;

    /**
     * '合同状态0待签1未签2已签3待变更4待解除5即将到期（没走完流程）6已解除7待续签8即将到期（走完流程）9已到期',
     */
    @TableField("contract_status")
    private Integer contractStatus;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private Long updateTime;

    /**
     * 加入时间
     */
    @TableField("create_time")
    private Long createTime;

    /**
     * 是否删除
     */
    @TableField("is_del")
    private Boolean isDel;

    /**
     * 联系方式 (手机)
     */
    @TableField("mobile")
    private String mobile;

    /**
     * 手机通讯录可见  1：可见  0：不可见
     */
    @TableField("mobile_visible")
    private Boolean mobileVisible;

    /**
     * 电子邮箱
     */
    @TableField("email")
    private String email;

    /**
     * 0:男 1：女
     */
    @TableField("gender")
    private Boolean gender;

    /**
     * 入职日期
     */
    @TableField("entry_date")
    private Long entryDate;

    /**
     * 邀请日期
     */
    @TableField("invitation_date")
    private Integer invitationDate;

    /**
     * 到岗日期
     */
    @TableField("arrival_date")
    private Integer arrivalDate;

    /**
     * 办公地点id
     */
    @TableField("location_id")
    private Integer locationId;

    /**
     * 岗位性质id
     */
    @TableField("position_nature_id")
    private Integer positionNatureId;

    /**
     * 试用期 默认为3月
     */
    @TableField("probation")
    private Integer probation;

    /**
     * 拟转正日期
     */
    @TableField("proposed")
    private Integer proposed;

    /**
     * 转正日期
     */
    @TableField("correction")
    private Integer correction;

    /**
     * 办公电话
     */
    @TableField("office_phone")
    private String officePhone;

    /**
     * 最后工作日
     */
    @TableField("last_workday")
    private Integer lastWorkday;

    /**
     * 状态(-1：停用，1启用)
     */
    @TableField("status")
    private Integer status;

    /**
     * 头像(考勤)
     */
    @TableField("header")
    private String header;

    /**
     * 平台id
     */
    @TableField("infos_id")
    private String infosId;

    /**
     * 超级程序员 0：不是 1：是
     */
    @TableField("is_super_admin")
    private Boolean isSuperAdmin;

    @TableField("groupId")
    private String groupId;

    /**
     * app端按钮的提交状态 0：没提交 1：已提交
     */
    @TableField("app_submit_status")
    private Boolean appSubmitStatus;

    /**
     * 头像(一般）
     */
    @TableField("newHeader")
    private String newHeader;

    @TableField("memberId")
    private String memberId;

    @TableField("old_groupId")
    private String oldGroupid;

    /**
     * 人脸识别token
     */
    @TableField("facetoken")
    private String facetoken;


    @Override
    protected Serializable pkVal() {
        return this.staffId;
    }

}
